#include <stdio.h>

// 每多加一级指针，就必须要多加一个 * 

int main(){
    int num;
    int *ptr1;
    int **ptr2; // 表示数据类型是 **
    int ***ptr3;

    num = 100;
    ptr1 = &num;
    ptr2 = &ptr1; // ptr2是指向ptr1的指针，ptr2必须是**类型
    ptr3 = &ptr2;

    printf("*ptr1: %d\n", *ptr1);
    printf("**ptr2: %d\n", **ptr2);
    printf("***ptr3: %d\n", ***ptr3);

    // int *ptr_1 = &num;
    // int *ptr_2 = &ptr1;
    // 这时ptr2中存放ptr1的地址
    // *ptr2就表示ptr1指针
    // **ptr2就表示num
    // 上面的错误在于：ptr_1是int *数据类型，&ptr_1是int **数据类型
    // 所以int *ptr_2 = &ptr_1 会出现数据类型不匹配
 




    return 0;
}